package com.project.service;

import com.alibaba.fastjson.JSONObject;
import com.project.entity.University;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Author: TateBrown
 * @date: 2018/5/26 15:12
 * @param:
 * @return:
 */
public interface UniversityService {
    /**
     * author: WheelChen
     * date: 2017-5-2
     * function: 增加学校信息
     * @param university
     * @return
     */
    int add(University university);
    /**
     * author: WheelChen
     * date: 2017-5-2
     * function: 修改学校信息
     * @param university
     * @return
     */
    int modify(University university);
    /**
     * author: WheelChen
     * date: 2017-5-2
     * function: 查找学校信息
     * @param id
     * @return
     */
    University findOne(Integer id);

    /**
     * author: WheelChen
     * date: 2017-5-2
     * function: 查找所有学校信息
     * @param
     * @return
     */
    List<University> findAll();

    /**
     * author: WheelChen
     * date: 2017/7/24
     * function: 查找所有学校信息及其下属学院信息 + 条件查找 （根据学院管理员数量分页）
     *
     * @param university
     * @return
     */
    List<University> findUniversityAndSchoolsByCondition(University university);

    /**
     * author: WheelChen
     * date: 2017/9/20
     * function: 查找所有学校信息及其下属学院信息 + 条件查找（根据大学数量分页）
     *
     * @param university
     * @return
     */
    List<JSONObject> findUniversityAndSchoolsByCondition2(University university) throws Exception;

    /**
     * author: WheelChen
     * date: 2017/9/18
     * function: 模糊分页搜索
     *
     * @param university
     * @return
     */
    List<University> findByCondition(University university);

    /**
     * author: WheelChen
     * date: 2017/11/3
     * function: 删除学校及学校下的所有学生信息
     *
     * @param universityId 大学id
     * @param request
     * @return
     */
    boolean removeOneChain(Integer universityId, HttpServletRequest request);

    /**
     * author: WheelChen
     * date: 2017/11/3
     * function: 根据主键删除大学
     *
     * @param id 大学表主键
     * @return
     */
    int removeOneById(Integer id);

    List<University> findByUniversityName(String name);
}
